From 9d0585445f9387b6dfb0edce03d5f8e5c0f0fd09 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Mon, 26 Apr 2021 18:27:16 +0200 Subject: [PATCH] kbuild: Abort build if SUBDIRS used Forwarded: not-needed Bug-Debian: https://bugs.debian.org/987575 DKMS and module-assistant both build OOT modules as root. If they build an old OOT module that still use SUBDIRS this causes Kbuild to try building a full kernel, which obviously fails but not before deleting files from the installed headers package. To avoid such mishaps, detect this situation and abort the build. The error message is based on that used in commit 0126be38d988 "kbuild: announce removal of SUBDIRS if used". Gbp-Pq: Topic debian Gbp-Pq: Name kbuild-abort-build-if-subdirs-used.patch --- Makefile | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Makefile b/Makefile index e06c4c628de..c44ba526f2a 100644 --- a/Makefile +++ b/Makefile @@ -142,6 +142,18 @@ ifeq ("$(origin M)", "command line") KBUILD_EXTMOD := $(M) endif +# Old syntax make ... SUBDIRS=$PWD should be rejected to avoid mishaps +# (see Debian bugs #982334, #987575) +ifndef KBUILD_EXTMOD + ifdef SUBDIRS + $(warning =============== ERROR ==============) + $(warning 'SUBDIRS' was removed in Linux 5.3) + $(warning Use 'M=' or 'KBUILD_EXTMOD=' instead) + $(warning ====================================) + $(error .) + endif +endif + $(if $(word 2, $(KBUILD_EXTMOD)), \ $(error building multiple external modules is not supported)) -- 2.30.2